#pragma once
#ifndef CALLBACKS_H
#define CALLBACKS_H
#include <memory>
#include <functional>
#include <cstring>
namespace mymuduo {

class TimeStamp;
class Buffer;
class TcpConnection;

using TcpConnectionPtr = std::shared_ptr<TcpConnection>;
using ConnectionCallback = std::function<void(const TcpConnectionPtr&)>;
using CloseCallback = std::function<void(const TcpConnectionPtr&)>;
using WriteCompleteCallback = std::function<void(const TcpConnectionPtr&)>;
using MessageCallback = std::function<void(const TcpConnectionPtr&, Buffer*, TimeStamp)>;
using HighWaterMarkCallback = std::function<void(const TcpConnectionPtr& , size_t)>;

}

#endif